import os
import csv
import pandas as pd


def read_csv(file_path):
    """
    读取 CSV 文件并返回 DataFrame。

    :param file_path: CSV 文件的路径
    :return: 包含 CSV 数据的 DataFrame
    """
    try:
        data = pd.read_csv(file_path)
        print("CSV 文件读取成功。")
        return data
    except Exception as e:
        print(f"读取 CSV 文件时发生错误: {e}")
        return None


def save_to_csv(data_list, csv_file_path):
    """
    将字典列表保存到CSV文件中。如果文件已存在，则将数据追加到文件末尾。
    :param data_list: 包含字典的列表，每个字典代表一行数据
    :param csv_file_path: CSV文件的保存路径
    """
    if not data_list:
        print("数据列表为空，无法保存到CSV文件。")
        return
    # 检查文件是否存在
    file_exists = os.path.exists(csv_file_path)
    try:
        with open(csv_file_path, mode='a', newline='', encoding='utf-8-sig') as file:
            # 获取表头（字段名）
            fieldnames = data_list[0].keys()
            writer = csv.DictWriter(file, fieldnames=fieldnames)
            # 如果文件不存在，则写入表头
            if not file_exists:
                writer.writeheader()
            # 写入数据
            for row in data_list:
                writer.writerow(row)
        print(f"数据已成功保存到 {csv_file_path}")
    except Exception as e:
        print(f"保存CSV文件时发生错误: {e}")


def test():
    # 示例调用
    data = [
        {'user_name': 'mj_2914061',
         'file_path': 'C://work/【实验室相关】/【2024-10-22】AI判分/10.91.128.2-Tomcat80\\202107\\mj_2914061_浠讳笘璞猒20210728132920.docx',
         'score': 4, 'evaluation': 20},
        {'user_name': 'mj_2914061',
         'file_path': 'C://work/【实验室相关】/【2024-10-22】AI判分/10.91.128.2-Tomcat80\\202107\\mj_2914061_浠讳笘璞猒20210728132931.docx',
         'score': 4, 'evaluation': 20}
    ]
    csv_file_path = f'../files/output.csv'
    save_to_csv(data, csv_file_path)




if __name__=="__main__":
    test()